home *** CD-ROM | disk | FTP | other *** search
/ Skunkware 5 / Skunkware 5.iso / src / X11 / endo / frame.c < prev    next >
C/C++ Source or Header  |  1995-05-03  |  2KB  |  89 lines

  1. /*************************************************************************
  2.  *                                                                       *
  3.  *  Copyright (c) 1992, 1993 Ronald Joe Record                           *
  4.  *                                                                       *
  5.  *  All rights reserved. No part of this program or publication may be   *
  6.  *  reproduced, transmitted, transcribed, stored in a retrieval system,  *
  7.  *  or translated into any language or computer language, in any form or *
  8.  *  by any means, electronic, mechanical, magnetic, optical, chemical,   *
  9.  *  biological, or otherwise, without the prior written permission of:   *
  10.  *                                                                       *
  11.  *      Ronald Joe Record (408) 458-3718                                 *
  12.  *      212 Owen St., Santa Cruz, California 95062 USA                   *
  13.  *                                                                       *
  14.  *************************************************************************/
  15.  
  16. #include "x.h"
  17.  
  18.  
  19. void
  20. go_down() 
  21. {
  22.     frame++;
  23.     if (frame > maxframe)
  24.         frame = 0;
  25.     jumpwin();
  26. }
  27.  
  28. void
  29. go_back() 
  30. {
  31.     frame--;
  32.     if (frame < 0)
  33.         frame = maxframe;
  34.     jumpwin();
  35. }
  36.  
  37. jumpwin()
  38. {
  39.     extern image_data_t rubber_data;
  40.  
  41.     rubber_data.p_min = min_x = a_minimums[frame];
  42.     rubber_data.q_min = min_y = b_minimums[frame];
  43.     rubber_data.p_max = max_x = a_maximums[frame];
  44.     rubber_data.q_max = max_y = b_maximums[frame];
  45.     x_range = max_x - min_x;
  46.     y_range = max_y - min_y;
  47.     x_inc = x_range / (double)width;
  48.     y_inc = y_range / (double)height;
  49.     point.x = 0;
  50.     point.y = 0;
  51.     maxexp = minexp = 0;
  52.     run = 1;
  53.     x = min_x;
  54.     y = min_y;
  55.     Clear(trajec);
  56.     Clear(crijec);
  57.     Clear(which);
  58.     if (resized[frame])
  59.         Redraw();
  60.     else
  61.         redraw(indices[frame], perind[frame], 0);
  62. }
  63.  
  64. void
  65. go_init() 
  66. {
  67.     frame = 0;
  68.     jumpwin();
  69. }
  70.  
  71. Destroy_frame()
  72. {
  73.     static int i;
  74.  
  75.     for (i=frame; i<maxframe; i++) {
  76.         periods[frame] = periods[frame+1];
  77.         indices[frame] = indices[frame+1];
  78.         perind[frame] = perind[frame+1];
  79.         a_minimums[frame] = a_minimums[frame+1];
  80.         b_minimums[frame] = b_minimums[frame+1];
  81.         a_maximums[frame] = a_maximums[frame+1];
  82.         b_maximums[frame] = b_maximums[frame+1];
  83.     }
  84.     if (maxframe)
  85.         maxframe--;
  86.     go_back();
  87. }
  88.  
  89.